package com.sodimac.v2s.business
{
 	import com.adobe.cairngorm.business.ServiceLocator;
 	import com.sodimac.util.commons.EstadosBPM;
 	import com.sodimac.util.commons.UtilString;
 	
 	import mx.collections.ArrayCollection;
 	import mx.rpc.AsyncToken;
 	import mx.rpc.IResponder;
 	import mx.rpc.soap.WebService;	
	
	public class ProductosDelegate
	{
		
		private var service:WebService;
		private var responder:IResponder;		
		
		public function ProductosDelegate(responder:IResponder)
		{
			this.service = ServiceLocator.getInstance().getWebService("wsSolicitudFacturaProforma");
			this.responder = responder;
		}


		public function ConsultaPedidoPais(cabecera:Object, idPais:String, idPedidoCorp:Number):void
		{
			trace("ProductoDelegate.ConsultaPedidoPais ("+ idPais + " "+ idPedidoCorp +")");
			
			var payload:Object = new Object();
			payload.idPais = idPais;
			payload.idPedidoCorp = idPedidoCorp;
			
			var call:AsyncToken = service.consultaPedidoPais(cabecera, payload);
			call.addResponder( responder );
		}


		public function ConsultaPedidoPaisProducto(cabecera:Object, idEmpresa: String, idPais: String, 
												   idPedidoCorp: Number, homologado:String):void
		{
			trace("ProductoDelegate.consultaPedidoPaisProducto ("+ idPais + " "+ idEmpresa +")");
			var payload:Object = new Object();
			payload.idEmpresa = idEmpresa;
			payload.idPais = idPais;
			payload.idPedidoCorp = idPedidoCorp;
			payload.homologado = homologado;		
									
			var call:AsyncToken = service.consultaPedidoPaisProducto(cabecera,payload);
			call.addResponder( responder );
		}


		public function GrabarPedidoPais(cabecera: Object, idPais: String, idPedidoCorp: Number,
										 strLogin: String, strVersion: String, fechaPedido: Date,
										 idProveedor: String, idEmpresa: String, strEstado: String,
										 motivoRechazo: String, arrProductos: ArrayCollection):void
		{
			trace("ProductoDelegate.GrabarPedidoPais (Pais="+ idPais + " PedidoCorp="+ idPedidoCorp +")");
			var payload:Object = new Object();
			var info:Object = new Object();
			info.lgUser = strLogin;
			info.version = strVersion;
			info.fechaPedido = fechaPedido; 
			info.idProveedor = idProveedor;
			info.estado = strEstado;
			info.motivoRechazo = motivoRechazo;
			info.idPais = idPais;
			info.idPedidoCorp = idPedidoCorp;
			info.idEmpresa = idEmpresa;
			payload.infoSave = info;
			
			
			if (!UtilString.equalsIgnoreCase(EstadosBPM.RECHAZO,strEstado))
			{
				if (arrProductos.length >0)
				{
					var productos:Array = new Array();
					for (var j:int=0; j<arrProductos.length;j++)
					{
							var prod:Object = new Object();
							prod.sku = arrProductos[j]["sku"]; 
							prod.cantInicial = Number(arrProductos[j]["quantity"]);
							productos.push(prod);
					} 

				
				var obj:Object = new Object();
				obj.infoProd = 	productos
				payload.productos = obj;
				}
			}		

			var call:AsyncToken  = service.grabarPedidoPaisDetalle(cabecera,payload);
			call.addResponder( responder );
		}




	}
			
}

	
	